import java.util.*;
public class Main {
    /*给你一个整数数组 nums 和两个正整数 m 和 k 。
    请你返回 nums 中长度为 k 的 几乎唯一 子数组的 最大和 ，如果不存在几乎唯一子数组，请你返回 0 。
    如果 nums 的一个子数组有至少 m 个互不相同的元素，我们称它是 几乎唯一 子数组。
    子数组指的是一个数组中一段连续 非空 的元素序列。*/
    public static long seek(int[] nums,int m,int k) {
        int n=nums.length;
        if(n<k)return 0;
        long sum=0;
        int left=0;
        long result=0;
        Map<Integer,Integer> arr=new HashMap<>();
        for(int right=0;right<n;right++){
            sum+=nums[right];
            arr.put(nums[right],arr.getOrDefault(nums[right],0)+1);
            while(right-left+1>k){
                arr.put(nums[left],arr.get(nums[left])-1);
                if(arr.get(nums[left])==0)
                    arr.remove(nums[left]);
                sum-=nums[left];
                left++;
            }
            if(arr.size()>=m&&right-left+1==k)
            result=Math.max(result,sum);
        }
        return result;
    }
    public static void main(String[] args) {
      Scanner sc=new Scanner(System.in);
      int n=sc.nextInt();
      int[] nums=new int[n];
      for(int i=0;i<n;i++){
          nums[i]=sc.nextInt();
      }
      int m=sc.nextInt();
      int k=sc.nextInt();
      long resultsum=seek(nums,m,k);
      System.out.println(resultsum);
    }
}